{
  'targets': [
    {
      'target_name': 'plzmasdk',
      'defines': [
        'LIBPLZMA_VERSION_BUILD=1198',
        'LIBPLZMA_SHARED=1',
        'LIBPLZMA_NO_C_BINDINGS=1',
        'LIBPLZMA_HAVE_STD=1',
        'LIBPLZMA_NO_CPP_RTTI=1'
      ],
      'sources': [
        'node/module.cpp',
        'src/Asm/arm64/7zAsm.S',
        'src/Asm/arm64/LzmaDecOpt.S',
        'src/C/7zCrc.c',
        'src/C/7zCrcOpt.c',
        'src/C/7zStream.c',
        'src/C/Aes.c',
        'src/C/AesOpt.c',
        'src/C/Alloc.c',
        'src/C/Bcj2.c',
        'src/C/Bcj2Enc.c',
        'src/C/Bra.c',
        'src/C/Bra86.c',
        'src/C/BraIA64.c',
        'src/C/CpuArch.c',
        'src/C/Delta.c',
        'src/C/LzFind.c',
        'src/C/LzFindMt.c',
        'src/C/LzFindOpt.c',
        'src/C/Lzma2Dec.c',
        'src/C/Lzma2DecMt.c',
        'src/C/Lzma2Enc.c',
        'src/C/LzmaDec.c',
        'src/C/LzmaEnc.c',
        'src/C/MtCoder.c',
        'src/C/Ppmd7.c',
        'src/C/Ppmd7Dec.c',
        'src/C/Ppmd7Enc.c',
        'src/C/Sha256.c',
        'src/C/Sha256Opt.c',
        'src/C/SwapBytes.c',
        'src/C/Threads.c',
        'src/C/Xz.c',
        'src/C/XzCrc64.c',
        'src/C/XzCrc64Opt.c',
        'src/C/XzDec.c',
        'src/C/XzEnc.c',
        'src/C/XzIn.c',
        'src/CPP/7zip/Archive/7z/7zDecode.cpp',
        'src/CPP/7zip/Archive/7z/7zEncode.cpp',
        'src/CPP/7zip/Archive/7z/7zExtract.cpp',
        'src/CPP/7zip/Archive/7z/7zFolderInStream.cpp',
        'src/CPP/7zip/Archive/7z/7zHandler.cpp',
        'src/CPP/7zip/Archive/7z/7zHandlerOut.cpp',
        'src/CPP/7zip/Archive/7z/7zHeader.cpp',
        'src/CPP/7zip/Archive/7z/7zIn.cpp',
        'src/CPP/7zip/Archive/7z/7zOut.cpp',
        'src/CPP/7zip/Archive/7z/7zProperties.cpp',
        'src/CPP/7zip/Archive/7z/7zRegister.cpp',
        'src/CPP/7zip/Archive/7z/7zUpdate.cpp',
        'src/CPP/7zip/Archive/ArchiveExports.cpp',
        'src/CPP/7zip/Archive/Common/CoderMixer2.cpp',
        'src/CPP/7zip/Archive/Common/DummyOutStream.cpp',
        'src/CPP/7zip/Archive/Common/HandlerOut.cpp',
        'src/CPP/7zip/Archive/Common/InStreamWithCRC.cpp',
        'src/CPP/7zip/Archive/Common/ItemNameUtils.cpp',
        'src/CPP/7zip/Archive/Common/MultiStream.cpp',
        'src/CPP/7zip/Archive/Common/OutStreamWithCRC.cpp',
        'src/CPP/7zip/Archive/DllExports2.cpp',
        'src/CPP/7zip/Archive/LzmaHandler.cpp',
        'src/CPP/7zip/Archive/SplitHandler.cpp',
        'src/CPP/7zip/Archive/Tar/TarHandler.cpp',
        'src/CPP/7zip/Archive/Tar/TarHandlerOut.cpp',
        'src/CPP/7zip/Archive/Tar/TarHeader.cpp',
        'src/CPP/7zip/Archive/Tar/TarIn.cpp',
        'src/CPP/7zip/Archive/Tar/TarOut.cpp',
        'src/CPP/7zip/Archive/Tar/TarRegister.cpp',
        'src/CPP/7zip/Archive/Tar/TarUpdate.cpp',
        'src/CPP/7zip/Archive/XzHandler.cpp',
        'src/CPP/7zip/Common/CreateCoder.cpp',
        'src/CPP/7zip/Common/CWrappers.cpp',
        'src/CPP/7zip/Common/FileStreams.cpp',
        'src/CPP/7zip/Common/FilterCoder.cpp',
        'src/CPP/7zip/Common/InBuffer.cpp',
        'src/CPP/7zip/Common/InOutTempBuffer.cpp',
        'src/CPP/7zip/Common/LimitedStreams.cpp',
        'src/CPP/7zip/Common/MethodProps.cpp',
        'src/CPP/7zip/Common/OffsetStream.cpp',
        'src/CPP/7zip/Common/OutBuffer.cpp',
        'src/CPP/7zip/Common/ProgressUtils.cpp',
        'src/CPP/7zip/Common/PropId.cpp',
        'src/CPP/7zip/Common/StreamObjects.cpp',
        'src/CPP/7zip/Common/StreamUtils.cpp',
        'src/CPP/7zip/Common/UniqBlocks.cpp',
        'src/CPP/7zip/Common/VirtThread.cpp',
        'src/CPP/7zip/Compress/Bcj2Coder.cpp',
        'src/CPP/7zip/Compress/Bcj2Register.cpp',
        'src/CPP/7zip/Compress/BcjCoder.cpp',
        'src/CPP/7zip/Compress/BcjRegister.cpp',
        'src/CPP/7zip/Compress/BranchMisc.cpp',
        'src/CPP/7zip/Compress/BranchRegister.cpp',
        'src/CPP/7zip/Compress/ByteSwap.cpp',
        'src/CPP/7zip/Compress/CodecExports.cpp',
        'src/CPP/7zip/Compress/CopyCoder.cpp',
        'src/CPP/7zip/Compress/CopyRegister.cpp',
        'src/CPP/7zip/Compress/DeltaFilter.cpp',
        'src/CPP/7zip/Compress/Lzma2Decoder.cpp',
        'src/CPP/7zip/Compress/Lzma2Encoder.cpp',
        'src/CPP/7zip/Compress/Lzma2Register.cpp',
        'src/CPP/7zip/Compress/LzmaDecoder.cpp',
        'src/CPP/7zip/Compress/LzmaEncoder.cpp',
        'src/CPP/7zip/Compress/LzmaRegister.cpp',
        'src/CPP/7zip/Compress/PpmdDecoder.cpp',
        'src/CPP/7zip/Compress/PpmdEncoder.cpp',
        'src/CPP/7zip/Compress/PpmdRegister.cpp',
        'src/CPP/7zip/Compress/XzDecoder.cpp',
        'src/CPP/7zip/Compress/XzEncoder.cpp',
        'src/CPP/7zip/Crypto/7zAes.cpp',
        'src/CPP/7zip/Crypto/7zAesRegister.cpp',
        'src/CPP/7zip/Crypto/MyAes.cpp',
        'src/CPP/7zip/Crypto/MyAesReg.cpp',
        'src/CPP/7zip/Crypto/RandGen.cpp',
        'src/CPP/Common/CRC.cpp',
        'src/CPP/Common/CrcReg.cpp',
        'src/CPP/Common/IntToString.cpp',
        'src/CPP/Common/MyString.cpp',
        'src/CPP/Common/MyWindows.cpp',
        'src/CPP/Common/Sha256Reg.cpp',
        'src/CPP/Common/StringConvert.cpp',
        'src/CPP/Common/StringToInt.cpp',
        'src/CPP/Common/UTFConvert.cpp',
        'src/CPP/Common/Wildcard.cpp',
        'src/CPP/Common/XzCrc64Reg.cpp',
        'src/CPP/Common/NewHandler.cpp',
        'src/CPP/Windows/FileDir.cpp',
        'src/CPP/Windows/FileFind.cpp',
        'src/CPP/Windows/FileIO.cpp',
        'src/CPP/Windows/FileName.cpp',
        'src/CPP/Windows/PropVariant.cpp',
        'src/CPP/Windows/PropVariantConv.cpp',
        'src/CPP/Windows/System.cpp',
        'src/CPP/Windows/TimeUtils.cpp',
        'src/plzma.cpp',
        'src/plzma_base_callback.cpp',
        'src/plzma_common.cpp',
        'src/plzma_decoder_impl.cpp',
        'src/plzma_encoder_impl.cpp',
        'src/plzma_exception.cpp',
        'src/plzma_extract_callback.cpp',
        'src/plzma_file_utils.cpp',
        'src/plzma_in_streams.cpp',
        'src/plzma_item.cpp',
        'src/plzma_open_callback.cpp',
        'src/plzma_out_streams.cpp',
        'src/plzma_path.cpp',
        'src/plzma_path_utils.cpp',
        'src/plzma_progress.cpp',
        'src/plzma_raw_heap_memory.cpp',
        'src/plzma_string.cpp',
        'src/plzma_update_callback.cpp'
      ],
      'cflags!': [ '-fno-exceptions' ],
      'cflags_cc!': [ '-fno-exceptions' ],
      'cflags_cc': [ '-fno-rtti' ],
      'conditions': [
        ['OS=="mac"', {
          'xcode_settings': {
            'GCC_ENABLE_CPP_EXCEPTIONS': 'YES',
            'OTHER_CPLUSPLUSFLAGS': [ '-fno-rtti' ]
          }
        }]
      ]
    }
  ]
}
